home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import javax.swing.JPasswordField;
- import javax.swing.text.Position.Bias;
-
- public class PasswordView extends FieldView {
- static char[] ONE = new char[1];
-
- public PasswordView(Element var1) {
- super(var1);
- }
-
- protected int drawEchoCharacter(Graphics var1, int var2, int var3, char var4) {
- ONE[0] = var4;
- var1.drawChars(ONE, 0, 1, var2, var3);
- return var2 + var1.getFontMetrics().charWidth(var4);
- }
-
- protected int drawSelectedText(Graphics var1, int var2, int var3, int var4, int var5) throws BadLocationException {
- var1.setColor(super.selected);
- Container var6 = ((View)this).getContainer();
- if (var6 instanceof JPasswordField) {
- JPasswordField var7 = (JPasswordField)var6;
- var1.setColor(((JTextComponent)var7).getSelectedTextColor());
- char var8 = var7.getEchoChar();
- int var9 = var5 - var4;
-
- for(int var10 = 0; var10 < var9; ++var10) {
- var2 = this.drawEchoCharacter(var1, var2, var3, var8);
- }
- }
-
- return var2;
- }
-
- protected int drawUnselectedText(Graphics var1, int var2, int var3, int var4, int var5) throws BadLocationException {
- Container var6 = ((View)this).getContainer();
- if (var6 instanceof JPasswordField) {
- JPasswordField var7 = (JPasswordField)var6;
- var1.setColor(((Component)var7).getForeground());
- char var8 = var7.getEchoChar();
- int var9 = var5 - var4;
-
- for(int var10 = 0; var10 < var9; ++var10) {
- var2 = this.drawEchoCharacter(var1, var2, var3, var8);
- }
- }
-
- return var2;
- }
-
- public Shape modelToView(int var1, Shape var2, Position.Bias var3) throws BadLocationException {
- Container var4 = ((View)this).getContainer();
- if (var4 instanceof JPasswordField) {
- JPasswordField var5 = (JPasswordField)var4;
- char var6 = var5.getEchoChar();
- FontMetrics var7 = ((Component)var5).getFontMetrics(((Component)var5).getFont());
- Rectangle var8 = ((FieldView)this).adjustAllocation(var2).getBounds();
- int var9 = (var1 - ((View)this).getStartOffset()) * var7.charWidth(var6);
- var8.x += var9;
- var8.width = 1;
- return var8;
- } else {
- return null;
- }
- }
-
- public int viewToModel(float var1, float var2, Shape var3, Position.Bias[] var4) {
- var4[0] = Bias.Forward;
- int var5 = 0;
- Container var6 = ((View)this).getContainer();
- if (var6 instanceof JPasswordField) {
- JPasswordField var7 = (JPasswordField)var6;
- char var8 = var7.getEchoChar();
- FontMetrics var9 = ((Component)var7).getFontMetrics(((Component)var7).getFont());
- var3 = ((FieldView)this).adjustAllocation(var3);
- Rectangle var10 = var3 instanceof Rectangle ? (Rectangle)var3 : var3.getBounds();
- var5 = ((int)var1 - var10.x) / var9.charWidth(var8);
- if (var5 < 0) {
- var5 = 0;
- } else if (var5 > ((View)this).getStartOffset() + ((View)this).getDocument().getLength()) {
- var5 = ((View)this).getDocument().getLength() - ((View)this).getStartOffset();
- }
- }
-
- return ((View)this).getStartOffset() + var5;
- }
- }
-